package entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name = "TIPO_PAGAMENTO", schema = "public")
@SequenceGenerator(name = "SEQ_TPPG")
public class TipoPagamento extends AbstractPersistableEntity{

	private int id;
	
	private int numeroParcelas;
	
	private double juros;
	
	private double desconto;
	
	private double mensalidade;
	
	private double valorParcelas;
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_TPPG")
	@Column(name = "COD_TPPG", nullable = false)
	protected int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	@Column(name = "NUMERO_PARCELAS")
	public int getNumeroParcelas() {
		return numeroParcelas;
	}

	public void setNumeroParcelas(int numeroParcelas) {
		this.numeroParcelas = numeroParcelas;
	}

	@Column(name = "JUROS")
	public double getJuros() {
		return juros;
	}

	public void setJuros(double juros) {
		this.juros = juros;
	}

	@Column(name = "DESCONTO")
	public double getDesconto() {
		return desconto;
	}

	public void setDesconto(double desconto) {
		this.desconto = desconto;
	}

	@Column(name = "MENSALIDADE")
	public double getMensalidade() {
		return mensalidade;
	}

	public void setMensalidade(double mensalidade) {
		this.mensalidade = mensalidade;
	}

	@Column(name = "VALOR_PARCELAS")
	public double getValorParcelas(){
		return valorParcelas;
	}
	
	public void setValorParcelas(double valorParcelas){
		this.valorParcelas = valorParcelas;
	}

	@Override
	public String toString() {
		String tipoPagamento = String.format("Desconto: %.2f\n" +
				"Juros: %.2f\n" +
				"Numero de Parcelas: %d\n" +
				"Valor das Parcelas: %.2f\n" +
				"Mensalidade: %.2f", 
				this.desconto, 
				this.juros, 
				this.numeroParcelas, 
				this.valorParcelas,
				this.mensalidade);
		return tipoPagamento;
	}
}
